当前位置:  开发笔记 > 编程语言 > 正文

通过``合并''文档进行MongoDB原子更新

如何解决《通过``合并''文档进行MongoDB原子更新》经验,为你挑选了1个好方法。

我知道我可以通过设置特定字段来原子地更新现有的Mongo文档。下面的代码可以做到这一点:

var update = MongoDB.Driver.Builders.Update.Set("InsideLegMeasurement", 32.4);
SafeModeResult result = personCollection.Update(query, update, UpdateFlags.Multi,SafeMode.True);

但是,我可以通过传入要与现有文档“合并”的文档来自动更新几个字段吗?想象一下,我有一个文档如下:{“ favcolor”:“ red”,“ favfood”:“ pasta”},我想用这些值更新现有文档。我想做这个:

var update = MongoDB.Driver.Builders.Update.Merge({"favcolor":"red","favfood":"pasta"});

甚至

var update = MongoDB.Driver.Builders.Update.Merge(myUpdateBsonDoc);

其中myBsonDocument包含很多字段,我不想从要与原始文档合并的文档中“解包”。

这有可能吗?

谢谢



1> Journeyman..:

找到了答案:

//var snippetJSON= '{title:"Tin Machine II",brandnewfield:"this gets added nicely"}';
    MongoDB.Bson.BsonDocument updateDoc = MongoDB.Bson.Serialization.BsonSerializer.Deserialize(snippetJSON);
var update = new UpdateDocument { { "$set", updateDoc } };

当您知道如何时就轻松!

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有